/**
 * The <code> Client </code> class will implement the client entity of our program.
 * this class extends <code> User </code> class.
 * 
 * @author Gil Levinson
 * @author Boris Fradlis
 * @author Yogev Levi
 * @author Hila Porat
 */

package vcpClasses;

//Start of Client ***********************************************************************

public class Client extends User{

	//class variables *******************************************************************
	
	private int clientNumber;
	private String clientPhone;
	private float clientBalance;
	private int numberOfVehicles;
	
	// Constructors ********************************************************************
	
	/**
	 * No input construcrt
	 */
	
	public Client(){
		super();
		this.setClientBalance(0);
		this.setClientNumber(0);
		this.setClientPhone(new String());
		this.setNumberOfVehicles(0);
	}
	
	/**
	 * constructor using the following fields:
	 * @param clientNumber the client's number
	 * @param clientPhone the client's phone
	 * @param clientBalance the client's balance
	 * @param numberOfVehicles the client's number of vehicle
	 */
	
	public Client(int clientNumber,String clientPhone,float clientBalance,int numberOfVehicles){
		super();
		this.setClientBalance(clientBalance);
		this.setClientNumber(clientNumber);
		this.setClientPhone(new String(clientPhone));
		this.setNumberOfVehicles(numberOfVehicles);
	}
	
	/**
	 * constructor using other client instance
	 * @param client the other client
	 */

	public Client(Client client) {
		super(client);
		this.setClientBalance(client.clientBalance);
		this.setClientNumber(client.clientNumber);
		this.setClientPhone(new String(client.clientPhone));
		this.setNumberOfVehicles(client.numberOfVehicles);
	}
	
	/**
	 * constructor using User instance
	 * @param user the user to construct with
	 */

	public Client(User user) {
		super(user);
		this.setClientBalance(0);
		this.setClientNumber(0);
		this.setClientPhone(new String());
		this.setNumberOfVehicles(0);
	}
	
	//Getters and Setters ************************************************************************************

	/**
	 * @return the clientNumber
	 */
	public int getClientNumber() {
		return clientNumber;
	}

	/**
	 * @param clientNumber the clientNumber to set
	 */
	public void setClientNumber(int clientNumber) {
		this.clientNumber = clientNumber;
	}

	/**
	 * @return the clientPhone
	 */
	public String getClientPhone() {
		return clientPhone;
	}

	/**
	 * @param clientPhone the clientPhone to set
	 */
	public void setClientPhone(String clientPhone) {
		this.clientPhone = clientPhone;
	}

	/**
	 * @return the clientBalance
	 */
	public float getClientBalance() {
		return clientBalance;
	}

	/**
	 * @param clientBalance the clientBalance to set
	 */
	public void setClientBalance(float clientBalance) {
		this.clientBalance = clientBalance;
	}

	/**
	 * @return the numberOfVehicles
	 */
	public int getNumberOfVehicles() {
		return numberOfVehicles;
	}

	/**
	 * @param numberOfVehicles the numberOfVehicles to set
	 */
	public void setNumberOfVehicles(int numberOfVehicles) {
		this.numberOfVehicles = numberOfVehicles;
	}
	


}
